﻿/*----------------------------------------------------------------
    // Copyright (C) 2009 江苏华招网
    // 版权所有。 
    // 作者：庄金冬 
    //
    // 文件名：BLL_Login.cs
    // 文件功能描述：用户登录业务逻辑类,实现接口IBLL_Login,继承自类MarshalByRefObject
    // 创建标识：庄金冬2009-03-06
    //
    // 修改标识：
    // 修改描述：
    //
    // 修改标识：
    // 修改描述：
    //
    // 审核人：
    // 审核时间：
    // 审核说明：
 //----------------------------------------------------------------*/
using System;
using System.Collections.Generic;

using System.Text;
using HZ.DrugTrade.IBLL;
using HZ.DrugTrade.Model;
using HZ.DrugTrade.DAL;
namespace HZ.DrugTrade.BLL
{
    /// <summary>
    /// 用户登录业务逻辑类,实现接口IBLL_Login,继承自类MarshalByRefObject
    /// </summary>
    public class BLL_Login : MarshalByRefObject, IBLL_Login
    {

        #region IBLL_Login 成员

        /// <summary>
        /// 用户登录0:登录失败;1:登录成功;2:用户名密码不匹配;3:用户未启用;
        /// </summary>
        /// <param name="userid">用户编号</param>
        /// <param name="userpassword">用户密码</param>
        /// <param name="user">(out)用户实例</param>
        /// <returns>0:登录失败;1:登录成功;2:用户名密码不匹配;3:用户未启用;</returns>
        public int Login(string userid, string userpassword, out User user)
        {
            userpassword = HZ.Fun2.GetMd5(userpassword);

            int i = DAL_User.Login(userid, userpassword, out user);

            if (i == 1)
            {
                BLL_Log log = new BLL_Log();
                BLL_UserSession.SetCurrentUser(user);
                log.AddKeyOperationLog(new KeyOperationLog() { OperateMessage = "登录成功", ClientIP = HZ.Fun.GetClientIP() });
            }

            return i;
        }

        /// <summary>
        /// 用户登录0:登录失败;1:登录成功;2:用户名密码不匹配;3:用户未启用;
        /// </summary>
        /// <param name="userid">用户编号</param>
        /// <param name="userpassword">用户密码</param>
        /// <param name="user">(out)用户实例</param>
        /// <returns>0:登录失败;1:登录成功;2:用户名密码不匹配;3:用户未启用;</returns>
        public int Login(string userid, string userpassword, string RoleID, out User user)
        {

            userpassword = HZ.Fun2.GetMd5(userpassword);

            int i = DAL_User.Login(userid, userpassword, RoleID, out user);
           

            if (i == 1)
            {
                BLL_Log log = new BLL_Log();
                BLL_UserSession.SetCurrentUser(user);
                log.AddKeyOperationLog(new KeyOperationLog() { OperateMessage = "登录成功", ClientIP = HZ.Fun.GetClientIP() });
            }
            return i;
        }
        /// <summary>
        /// 注销当前用户
        /// </summary>
        public void Logoff()
        {
            BLL_UserSession.Logoff();
        }
        #endregion
    }
}
